using System;
using System.Resources;
using System.Reflection;
using System.Globalization;

namespace GeoFramework
{
	/// <summary>
	/// Contains United States English resource information.
	/// </summary>
	internal class Resources
	{
		// This resource manager will look up the appropriate string based on the current culture. BUT since
		// we only have U. S. English resources available, we default to "en-US" resources.  In the future, the
		// "DefaultCulture" variable will go away and be replaced by CultureInfo.CurrentUICulture.
		private static CultureInfo DefaultCulture = new CultureInfo("en-US");


		/* ResX files are incompatible between Compact Framework 1.0 and newer versions of the .NET Frameworks because of different "resheader"
		 * information.  As a result, we must maintain two separate ResX files.  The naming convention for ResX files is as follows:
		 * 
		 * Compact Framework 1.0			[Default Namespace].PocketPC.[Culture Name].resx
		 * All other platforms				[Default Namespace].[Culture Name].resx
		 */
#if Framework30
#if PocketPC
		private static ResourceManager resourceManager = new ResourceManager("GeoFramework.Properties.Resources.CF35", typeof(Angle).Assembly);		
#else
		private static ResourceManager resourceManager = new ResourceManager("GeoFramework.Properties.Resources.DF35", typeof(Angle).Assembly);		
#endif
#elif Framework20
	#if PocketPC
		private static ResourceManager resourceManager = new ResourceManager("GeoFramework.Properties.Resources.CF20", typeof(Angle).Assembly);		
	#else
		private static ResourceManager resourceManager = new ResourceManager("GeoFramework.Properties.Resources.DF20", typeof(Angle).Assembly);		
	#endif
#elif Framework10
		private static ResourceManager resourceManager = new ResourceManager("GeoFramework.Properties.Resources.DF10", typeof(Angle).Assembly);		
#else
	#if PocketPC
		private static ResourceManager resourceManager = new ResourceManager("GeoFramework.Properties.Resources.CF10", typeof(Angle).Assembly);		
	#else
		private static ResourceManager resourceManager = new ResourceManager("GeoFramework.Properties.Resources.DF11", typeof(Angle).Assembly);		
	#endif

#endif

#if DEBUG
		/* This constructor only serves as a convenient way to debug resource problems.  Most resource problems occur when a resource is
		 * called upon but the absolute path to it is incorrect.  Verifying the resource name is usually involved in debugging.
		 */
		static Resources()
		{
            typeof(Resources).Assembly.GetManifestResourceStream("Common_Infinity");
            string[] LocalResourceNames = Assembly.GetExecutingAssembly().GetManifestResourceNames();
            foreach (string name in LocalResourceNames)
            {
                Console.WriteLine("Internal resource: " + name);
            }
		}
#endif

		public static readonly string Common_Empty = resourceManager.GetString("Common_Empty");
		public static readonly string Common_Infinity = resourceManager.GetString("Common_Infinity");

		public static readonly string Angle_TypeMismatch = resourceManager.GetString("Angle_TypeMismatch");
		public static readonly string Angle_OnlyRightmostIsDecimal = resourceManager.GetString("Angle_OnlyRightmostIsDecimal");
		public static readonly string Angle_ExtraCharactersWereEncountered = resourceManager.GetString("Angle_ExtraCharactersWereEncountered");
		public static readonly string Angle_InvalidFormat = resourceManager.GetString("Angle_InvalidFormat");
		public static readonly string Angle_InvalidToStringFormat = resourceManager.GetString("Angle_InvalidToStringFormat");
		public static readonly string Angle_InvalidInterval = resourceManager.GetString("Angle_InvalidInterval");

		public static readonly string Area_InvalidNumericPortion = resourceManager.GetString("Area_InvalidNumericPortion");
		public static readonly string Area_InvalidUnitPortion = resourceManager.GetString("Area_InvalidUnitPortion");
		public static readonly string Area_InvalidFormat = resourceManager.GetString("Area_InvalidFormat");
		public static readonly string Area_ConversionNotImplemented = resourceManager.GetString("Area_ConversionNotImplemented");
		public static readonly string Area_InvalidComparisonType = resourceManager.GetString("Area_InvalidComparisonType");

		public static readonly string Azimuth_InvalidComparisonType = resourceManager.GetString("Azimuth_InvalidComparisonType");

		public static readonly string DoubleBufferedControl_InvalidFramesPerSecond = resourceManager.GetString("DoubleBufferedControl_InvalidFramesPerSecond");

		public static readonly string Distance_InvalidNumericPortion = resourceManager.GetString("Distance_InvalidNumericPortion");
		public static readonly string Distance_InvalidUnitPortion = resourceManager.GetString("Distance_InvalidUnitPortion");
		public static readonly string Distance_InvalidFormat = resourceManager.GetString("Distance_InvalidFormat");
		public static readonly string Distance_ConversionNotImplemented = resourceManager.GetString("Distance_ConversionNotImplemented");
		public static readonly string Distance_InvalidComparisonType = resourceManager.GetString("Distance_InvalidComparisonType");

		public static readonly string RectangleD_InvalidFormat = resourceManager.GetString("RectangleD_InvalidFormat");

		public static readonly string SizeD_InvalidFormat = resourceManager.GetString("SizeD_InvalidFormat");

		public static readonly string GeoFrameworksLicenseProvider_ExecutionStoppedNeedKeys = resourceManager.GetString("GeoFrameworksLicenseProvider_ExecutionStoppedNeedKeys");
		public static readonly string GeoFrameworksLicenseProvider_ExecutionStoppedVisitWebSite = resourceManager.GetString("GeoFrameworksLicenseProvider_ExecutionStoppedVisitWebSite");
		public static readonly string GeoFrameworksLicenseProvider_GoOnlineForTrialKeys = resourceManager.GetString("GeoFrameworksLicenseProvider_GoOnlineForTrialKeys");
		public static readonly string GeoFrameworksLicenseProvider_LicenseKeyIsRequired = resourceManager.GetString("GeoFrameworksLicenseProvider_LicenseKeyIsRequired");
		public static readonly string GeoFrameworksLicenseProvider_LicenseKeyDialogTitle = resourceManager.GetString("GeoFrameworksLicenseProvider_LicenseKeyDialogTitle");
		public static readonly string GeoFrameworksLicenseProvider_AskToGoOnline = resourceManager.GetString("GeoFrameworksLicenseProvider_AskToGoOnline");
		public static readonly string GeoFrameworksLicenseProvider_ValidTrialLicense = resourceManager.GetString("GeoFrameworksLicenseProvider_ValidTrialLicense");
		public static readonly string GeoFrameworksLicenseProvider_ValidOwnerLicense = resourceManager.GetString("GeoFrameworksLicenseProvider_ValidOwnerLicense");
		public static readonly string GeoFrameworksLicenseProvider_InvalidLicenseKey = resourceManager.GetString("GeoFrameworksLicenseProvider_InvalidLicenseKey");
		public static readonly string GeoFrameworksLicenseProvider_InvalidPlatform = resourceManager.GetString("GeoFrameworksLicenseProvider_InvalidPlatform");
		public static readonly string GeoFrameworksLicenseProvider_InvalidMajorVersion = resourceManager.GetString("GeoFrameworksLicenseProvider_InvalidMajorVersion");
		public static readonly string GeoFrameworksLicenseProvider_ExecutionStoppedDialogTitle = resourceManager.GetString("GeoFrameworksLicenseProvider_ExecutionStoppedDialogTitle");

		public static readonly string GeoFrameworksLicense_InvalidLicenseKey = resourceManager.GetString("GeoFrameworksLicense_InvalidLicenseKey");

		public static readonly string TrialLicense_InvalidLicenseKey = resourceManager.GetString("TrialLicense_InvalidLicenseKey");
		public static readonly string TrialLicense_LicenseExpired = resourceManager.GetString("TrialLicense_LicenseExpired");
		public static readonly string TrialLicense_LicenseExpiredDialogTitle = resourceManager.GetString("TrialLicense_LicenseExpiredDialogTitle");
		public static readonly string TrialLicense_ExtendTrial = resourceManager.GetString("TrialLicense_ExtendTrial");
		public static readonly string TrialLicense_ExpirationDate = resourceManager.GetString("TrialLicense_ExpirationDate");

		public static readonly string GeographicSize_InvalidFormat = resourceManager.GetString("GeographicSize_InvalidFormat");

		public static readonly string Latitude_DecimalOrSexagesimalRequired = resourceManager.GetString("Latitude_DecimalOrSexagesimalRequired");
		public static readonly string Latitude_ExtraCharactersWereEncountered = resourceManager.GetString("Latitude_ExtraCharactersWereEncountered");
		public static readonly string Latitude_LatitudeHemisphereExpected = resourceManager.GetString("Latitude_LatitudeHemisphereExpected");
		public static readonly string Latitude_InvalidFormat = resourceManager.GetString("Latitude_InvalidFormat");
		public static readonly string Latitude_InvalidHemisphere = resourceManager.GetString("Latitude_InvalidHemisphere");
		public static readonly string Latitude_InvalidComparisonType = resourceManager.GetString("Latitude_InvalidComparisonType");
		public static readonly string Latitude_OnlyRightmostIsDecimal = resourceManager.GetString("Latitude_OnlyRightmostIsDecimal");

		public static readonly string Longitude_DecimalOrSexagesimalRequired = resourceManager.GetString("Longitude_DecimalOrSexagesimalRequired");
		public static readonly string Longitude_ExtraCharactersWereEncountered = resourceManager.GetString("Longitude_ExtraCharactersWereEncountered");
		public static readonly string Longitude_LongitudeHemisphereExpected = resourceManager.GetString("Longitude_LatitudeHemisphereExpected");
		public static readonly string Longitude_InvalidFormat = resourceManager.GetString("Longitude_InvalidFormat");
		public static readonly string Longitude_InvalidHemisphere = resourceManager.GetString("Longitude_InvalidHemisphere");
		public static readonly string Longitude_InvalidComparisonType = resourceManager.GetString("Longitude_InvalidComparisonType");
		public static readonly string Longitude_OnlyRightmostIsDecimal = resourceManager.GetString("Longitude_OnlyRightmostIsDecimal");

		public static readonly string Position_InvalidUtmCoordinate = resourceManager.GetString("Position_InvalidUTMCoordinate");
		public static readonly string Position_NoUTMZoneNumber = resourceManager.GetString("Position_NoUTMZoneNumber");
		public static readonly string Position_NoUTMZoneLetter = resourceManager.GetString("Position_NoUTMZoneLetter");
		public static readonly string Position_InvalidZoneLetter = resourceManager.GetString("Position_InvalidZoneLetter");
		public static readonly string Position_InvalidZoneNumber = resourceManager.GetString("Position_InvalidZoneNumber");
		public static readonly string Position_DuplicateZoneInformation = resourceManager.GetString("Position_DuplicateZoneInformation");
		public static readonly string Position_InvalidFormat = resourceManager.GetString("Position_InvalidFormat");

		public static readonly string PositionCollection_DistanceError = resourceManager.GetString("PositionCollection_DistanceError");
		public static readonly string PositionCollection_AreaError = resourceManager.GetString("PositionCollection_AreaError");
		public static readonly string PositionCollection_RangeMustBeAboveZero = resourceManager.GetString("PositionCollection_RangeMustBeAboveZero");

		public static readonly string GeographicRectangle_WidthMustBeAboveZero = resourceManager.GetString("GeographicRectangle_WidthMustBeAboveZero");
		public static readonly string GeographicRectangle_HeightMustBeAboveZero = resourceManager.GetString("GeographicRectangle_HeightMustBeAboveZero");

		public static readonly string Speed_InvalidNumericPortion = resourceManager.GetString("Speed_InvalidNumericPortion");
		public static readonly string Speed_InvalidUnitPortion = resourceManager.GetString("Speed_InvalidUnitPortion");
		public static readonly string Speed_InvalidFormat = resourceManager.GetString("Speed_InvalidFormat");
		public static readonly string Speed_ConversionNotImplemented = resourceManager.GetString("Speed_ConversionNotImplemented");
		public static readonly string Speed_InvalidComparisonType = resourceManager.GetString("Speed_InvalidComparisonType");

		public static readonly string ThreadPool_InvalidMaximumThreads = resourceManager.GetString("ThreadPool_InvalidMaximumThreads");
		public static readonly string ThreadPool_InvalidMaximumQueueSize = resourceManager.GetString("ThreadPool_InvalidMaximumQueueSize");
	}
}
